package xyz.tanxiao.links.common.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 限流缓存Key枚举
 *
 * @author 万成波
 * @email 2300064869@qq.com
 * @createTime 2023-06-27 17:05:53 星期二
 */
@Getter
@AllArgsConstructor
public enum LinksCacheKeyEnum {

	/**
	 * 短链映射缓存Key前缀
	 */
	SHORT_LINKS_CACHE_KEY (
		"short-links:links:", ""
	),


	/**
	 * 转换短链接口限流缓存Key前缀
	 */
	TO_LINK_LIMIT_CACHE_KEY (
		"short-links:limit:tsl:",
		"请求失败，已达到当前最大允许操作次数，请稍后再试。刷接口直接关小黑屋。"
	),


	/**
	 * 短链常规访问接口限流缓存Key前缀
	 */
	GENERAL_ACCESS_LIMIT_CACHE_KEY (
		"short-links:limit:ga:",
		"请求失败，当前请求已被限制，请稍后再试。刷接口直接关小黑屋。"
	),


	/**
	 * 短链密码访问接口限流缓存Key前缀
	 */
	PASSWORD_ACCESS_LIMIT_CACHE_KEY (
		"short-links:limit:pa:",
		"请求失败，当前请求已被限制，请稍后再试。刷接口直接关小黑屋。"
	),


	/**
	 * 转换短链接口限流缓存Key前缀
	 */
	BATCH_TO_LINK_LIMIT_CACHE_KEY (
		"short-links:limit:btsl:",
		"请求失败，已达到当前最大允许操作次数，请稍后再试。刷接口直接关小黑屋。"
	),


	/**
	 * 批量生成短链缓存任务Key
	 */
	BATCH_TO_LINK_TASK_CACHE_KEY (
		"short-links:batch:", ""
	);


	/**
	 * 限流缓存Key
	 */
	private final String cacheKey;

	/**
	 * 限流异常提示消息
	 */
	private final String message;

}